package com.huike.report.service;

import java.util.List;

import com.huike.contract.domain.ChannelStatistics;
import com.huike.report.domain.vo.*;
import com.huike.clues.domain.TbActivity;
import com.huike.clues.domain.TbClue;
import com.huike.clues.domain.vo.IndexStatisticsVo;
import com.huike.contract.domain.TbContract;

public interface IReportService {


    /**
     * 客户统计报表
     * @param tbContract
     * @return
     */
    public  List<TbContract> contractReportList(TbContract tbContract);


    public List<TbClue> cluesStatisticsList(TbClue clue);

    /**
     * 活动渠道统计
     * @param activity
     * @return
     */
    public List<ActivityStatisticsVo> activityStatisticsList(TbActivity activity);



    public IndexVo getIndex(IndexStatisticsVo request);


    /**
     * 首页基本数据展示
     * @param beginCreateTime
     * @param endCreateTime
     * @return
     */
    IndexBaseInfoVO getBaseInfo(String beginCreateTime, String endCreateTime);

    IndexTodoInfoVo getTodoInfo(String beginCreateTime, String endCreateTime);

    IndexTodayInfoVo getTodayInfo();

//    List<Map<String,Object>> subjectStatistics(String beginCreateTime, String endCreateTime);
    List<SubjectStatisticsVo> subjectStatistics(String beginCreateTime, String endCreateTime);

    CluesStatisticsVo cluesStatistics(String beginCreateTime, String endCreateTime);

    List<ReportVo> getDeptStatisticsList(String beginCreateTime, String endCreateTime,
                                         Integer pageNum , Integer pageSize);

    Integer getDeptTotal(String beginCreateTime, String endCreateTime);

    List<ChannelStatistics> getChannelStatisticsList(String beginCreateTime, String endCreateTime, Integer pageNum, Integer pageSize);

    Long getTotal(String beginCreateTime, String endCreateTime);
}
